package com.gitee.qdbp.general.system.api.personnel.model;

import com.gitee.qdbp.base.annotation.DataIsolation;
import com.gitee.qdbp.base.annotation.OperateTraces;

/**
 * 用户基础信息更新类
 *
 * @author zhh
 * @version 180514
 */
@OperateTraces(target = "where")
@DataIsolation(target = "where")
public class UserCoreUpdate extends UserCoreBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 租户编号是否更新为空值 **/
    private Boolean tenantCodeToNull;

    /** 用户类型是否更新为空值 **/
    private Boolean userTypeToNull;

    /** 部门编号是否更新为空值 **/
    private Boolean deptCodeToNull;

    /** 账号/工号是否更新为空值 **/
    private Boolean userCodeToNull;

    /** 登录用户名是否更新为空值 **/
    private Boolean userNameToNull;

    /** 昵称是否更新为空值 **/
    private Boolean nickNameToNull;

    /** 真实姓名是否更新为空值 **/
    private Boolean realNameToNull;

    /** 电话是否更新为空值 **/
    private Boolean phoneToNull;

    /** 邮箱是否更新为空值 **/
    private Boolean emailToNull;

    /** 性别(0.未知|1.男|2.女)是否更新为空值 **/
    private Boolean genderToNull;

    /** 头像是否更新为空值 **/
    private Boolean photoToNull;

    /** 城市是否更新为空值 **/
    private Boolean cityToNull;

    /** 身份证是否更新为空值 **/
    private Boolean identityToNull;

    /** 密码是否更新为空值 **/
    private Boolean passwordToNull;

    /** 是否为超级用户是否更新为空值 **/
    private Boolean supermanToNull;

    /** 状态(0.正常|1.锁定|2.待激活|3.注销)是否更新为空值 **/
    private Boolean userStateToNull;
    
    /** 用户来源 **/
    private Boolean userSourceToNull;

    /** 选项是否更新为空值 **/
    private Boolean optionsToNull;

    /** 更新操作的条件 **/
    private UserCoreWhere where;

    /** 判断租户编号是否更新为空值 **/
    public Boolean isTenantCodeToNull() {
        return tenantCodeToNull;
    }

    /**
     * 设置租户编号是否更新为空值
     *
     * @param tenantCodeToNull 租户编号是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setTenantCodeToNull(Boolean tenantCodeToNull) {
        this.tenantCodeToNull = tenantCodeToNull;
    }

    /** 判断用户类型是否更新为空值 **/
    public Boolean isUserTypeToNull() {
        return userTypeToNull;
    }

    /**
     * 设置用户类型是否更新为空值
     *
     * @param userTypeToNull 用户类型是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setUserTypeToNull(Boolean userTypeToNull) {
        this.userTypeToNull = userTypeToNull;
    }

    /** 判断部门编号是否更新为空值 **/
    public Boolean isDeptCodeToNull() {
        return deptCodeToNull;
    }

    /**
     * 设置部门编号是否更新为空值
     *
     * @param deptCodeToNull 部门编号是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setDeptCodeToNull(Boolean deptCodeToNull) {
        this.deptCodeToNull = deptCodeToNull;
    }

    /** 判断账号/工号是否更新为空值 **/
    public Boolean isUserCodeToNull() {
        return userCodeToNull;
    }

    /** 设置账号/工号是否更新为空值 **/
    public void setUserCodeToNull(Boolean userCodeToNull) {
        this.userCodeToNull = userCodeToNull;
    }

    /** 判断登录用户名是否更新为空值 **/
    public Boolean isUserNameToNull() {
        return userNameToNull;
    }

    /** 设置登录用户名是否更新为空值 **/
    public void setUserNameToNull(Boolean userNameToNull) {
        this.userNameToNull = userNameToNull;
    }

    /** 判断昵称是否更新为空值 **/
    public Boolean isNickNameToNull() {
        return nickNameToNull;
    }

    /** 设置昵称是否更新为空值 **/
    public void setNickNameToNull(Boolean nickNameToNull) {
        this.nickNameToNull = nickNameToNull;
    }

    /** 判断真实姓名是否更新为空值 **/
    public Boolean isRealNameToNull() {
        return realNameToNull;
    }

    /** 设置真实姓名是否更新为空值 **/
    public void setRealNameToNull(Boolean realNameToNull) {
        this.realNameToNull = realNameToNull;
    }

    /** 判断电话是否更新为空值 **/
    public Boolean isPhoneToNull() {
        return phoneToNull;
    }

    /** 设置电话是否更新为空值 **/
    public void setPhoneToNull(Boolean phoneToNull) {
        this.phoneToNull = phoneToNull;
    }

    /** 判断邮箱是否更新为空值 **/
    public Boolean isEmailToNull() {
        return emailToNull;
    }

    /** 设置邮箱是否更新为空值 **/
    public void setEmailToNull(Boolean emailToNull) {
        this.emailToNull = emailToNull;
    }

    /** 判断性别(0.未知|1.男|2.女)是否更新为空值 **/
    public Boolean isGenderToNull() {
        return genderToNull;
    }

    /**
     * 设置性别(0.未知|1.男|2.女)是否更新为空值
     *
     * @param genderToNull 性别(0.未知|1.男|2.女)是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setGenderToNull(Boolean genderToNull) {
        this.genderToNull = genderToNull;
    }

    /** 判断头像是否更新为空值 **/
    public Boolean isPhotoToNull() {
        return photoToNull;
    }

    /** 设置头像是否更新为空值 **/
    public void setPhotoToNull(Boolean photoToNull) {
        this.photoToNull = photoToNull;
    }

    /** 判断城市是否更新为空值 **/
    public Boolean isCityToNull() {
        return cityToNull;
    }

    /** 设置城市是否更新为空值 **/
    public void setCityToNull(Boolean cityToNull) {
        this.cityToNull = cityToNull;
    }

    /** 判断身份证是否更新为空值 **/
    public Boolean isIdentityToNull() {
        return identityToNull;
    }

    /** 设置身份证是否更新为空值 **/
    public void setIdentityToNull(Boolean identityToNull) {
        this.identityToNull = identityToNull;
    }

    /** 判断密码是否更新为空值 **/
    public Boolean isPasswordToNull() {
        return passwordToNull;
    }

    /** 设置密码是否更新为空值 **/
    public void setPasswordToNull(Boolean passwordToNull) {
        this.passwordToNull = passwordToNull;
    }

    /** 判断是否为超级用户是否更新为空值 **/
    public Boolean isSupermanToNull() {
        return supermanToNull;
    }

    /**
     * 设置是否为超级用户是否更新为空值
     *
     * @param supermanToNull 是否为超级用户是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSupermanToNull(Boolean supermanToNull) {
        this.supermanToNull = supermanToNull;
    }

    /** 判断状态(0.正常|1.锁定|2.待激活|3.注销)是否更新为空值 **/
    public Boolean isUserStateToNull() {
        return userStateToNull;
    }

    /**
     * 设置状态(0.正常|1.锁定|2.待激活|3.注销)是否更新为空值
     *
     * @param userStateToNull 状态(0.正常|1.锁定|2.待激活|3.注销)是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setUserStateToNull(Boolean userStateToNull) {
        this.userStateToNull = userStateToNull;
    }

    /** 判断来源(0.未知|1.录入)是否更新为空值 **/
    public Boolean isUserSourceToNull() {
        return userSourceToNull;
    }

    /**
     * 设置来源(0.未知|1.录入)是否更新为空值
     *
     * @param userSourceToNull 来源(0.未知|1.录入)是否更新为空值
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setUserSourceToNull(Boolean userSourceToNull) {
        this.userSourceToNull = userSourceToNull;
    }

    /** 判断选项是否更新为空值 **/
    public Boolean isOptionsToNull() {
        return optionsToNull;
    }

    /** 设置选项是否更新为空值 **/
    public void setOptionsToNull(Boolean optionsToNull) {
        this.optionsToNull = optionsToNull;
    }

    /** 获取更新操作的条件 **/
    public UserCoreWhere getWhere() {
        return where;
    }

    /** 获取更新操作的条件, force=是否强制返回非空条件 **/
    public UserCoreWhere getWhere(boolean force) {
        if (where == null && force) {
            where = new UserCoreWhere();
        }
        return where;
    }

    /** 设置更新操作的条件 **/
    public void setWhere(UserCoreWhere where) {
        this.where = where;
    }
}